package com.fejal.dao;


import java.util.List;
import com.fejal.bean.Parametro;


public class ParametroDAOHibernate implements ParametroDAO {

	HibernateDAOFactory hibernateDAOFactory = null;
	HibernateDAO<Parametro> hibernateDAO = null;

	public ParametroDAOHibernate() {
		hibernateDAOFactory = new HibernateDAOFactory();
		hibernateDAO = hibernateDAOFactory.getParametroDao();
	}

	@Override
	public boolean inserir(Parametro parametro) throws Exception {

		boolean ok = false;

		try {
			hibernateDAO.add(parametro);
			ok = true;

		} catch (Exception e) {
			throw new Exception(e.getMessage());
		}

		return ok;
	}

	@Override
	public boolean alterar(Parametro parametro) throws Exception{

		boolean ok = false;
	
		
		try {
			hibernateDAO.update(parametro);
			ok = true;
		} catch (Exception e) {
			throw new Exception(e.getMessage());
		} 

		return ok;
	}

	@Override
	public boolean excluir(Parametro parametro) throws Exception{

		boolean ok = false;

		try {
			hibernateDAO.remove(parametro);
			ok = true;

		} catch (Exception e) {
			throw new Exception(e.getMessage());
		} 

		return ok;
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Parametro> getSelecionar(String chave) {
		String 	sql = "FROM Parametro WHERE codigoParametro <> 0 ";

		if (!(chave.isEmpty())) {
			sql += "AND descricao like '" + chave + "%' ";  
		}
		
		sql += "ORDER BY descricao";		
 
		List<Parametro> lista = hibernateDAO.getSession().createQuery(sql).list();
		return lista;
	}

	@Override
	public Parametro getParametro(String chave) {
		
		Parametro parametro = hibernateDAO.get(chave);
		return parametro;
	}

	@Override
	public List<Parametro> getListTodos() {
		
		List<Parametro> list = hibernateDAO.listAll();
		return list;
	}


}
